.TH std::basic_ostream::flush 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_ostream::flush \- std::basic_ostream::flush

.SH Synopsis
   basic_ostream& flush();

   Writes uncommitted changes to the underlying output sequence. Behaves as an
   UnformattedOutputFunction.

   If rdbuf() is a null pointer, the sentry object is not constructed.

   Otherwise, after constructing and checking the sentry object, calls
   rdbuf()->pubsync(). If the call returns -1, calls setstate(badbit).

.SH Parameters

   \fI(none)\fP

.SH Return value

   *this

.SH Exceptions

   May throw std::ios_base::failure if (exceptions() & badbit) != 0.

.SH Example


// Run this code

 #include <chrono>
 #include <iostream>
 #include <thread>

 using namespace std::chrono_literals;

 void f()
 {
     std::cout << "Output from thread... ";
     for (int i{1}; i != 10; ++i)
     {
         std::this_thread::sleep_for(250ms);
         std::cout << i << ' ';

         // output three numbers at once;
         // the effect is observable only in real-time
         if (0 == (i % 3))
             std::cout.flush();
     }
     std::cout << std::endl; // flushes as well
 }

 int main()
 {
     std::thread tr{f};
     std::this_thread::sleep_for(150ms);
     std::clog << "Output from main\\n";
     tr.join();
 }

.SH Output:

 Output from main
 Output from thread... 1 2 3 4 5 6 7 8 9

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

     DR    Applied to          Behavior as published              Correct behavior
                      flush() did not behave as an
   LWG 581 C++98      UnformattedOutputFunction               behaves as an
                      because of the resolution of LWG issue  UnformattedOutputFunction
                      60

.SH See also

   pubsync   invokes sync()
             \fI(public member function of std::basic_streambuf<CharT,Traits>)\fP
   sync      synchronizes the buffers with the associated character sequence
   \fB[virtual]\fP \fI(virtual protected member function of std::basic_streambuf<CharT,Traits>)\fP

   flush     flushes the output stream
             \fI(function template)\fP
   endl      outputs '\\n' and flushes the output stream
             \fI(function template)\fP
   sync      synchronizes with the underlying storage device
             \fI(public member function of std::basic_istream<CharT,Traits>)\fP
